home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C / Games / Xconq 7.0d16 / Xconq 7.0d16 src / src / cmdline.c < prev    next >
Encoding:
Text File  |  1993-12-20  |  13.8 KB  |  46 lines  |  [TEXT/MPS ]

  1. rcmp(rawplayers[i], "mplayer") == 0) { /* not really needed? */
  2.         player->aitypename = "mplayer";
  3.     } else {
  4.         parse_player_spec(player, rawplayers[i]);
  5.         player->displayname = rawplayers[i];
  6.     }
  7.     canonicalize_player(player);
  8.     }
  9. }
  10.  
  11. /* Parse the syntax "username,ai/config@display+advantage". */
  12.  
  13. parse_player_spec(player, spec)
  14. Player *player;
  15. char *spec;
  16. {
  17.     if (spec != NULL && strcmp(spec, "*") != 0) {
  18.     /* Extract a trailing advantage specification. */
  19.     if (iindex('+', spec) >= 0) {
  20.         player->displayname = copy_string(spec + iindex('@', spec) + 1);
  21.         player->advantage = max(1, atoi(&(spec[iindex('+', spec)+ 1])));
  22.         spec[iindex('+', spec)] = '\0';
  23.     }
  24.     /* Extract a displayname. */
  25.     if (iindex('@', spec) >= 0) {
  26.         player->displayname = copy_string(spec + iindex('@', spec) + 1);
  27.         if (strlen(player->displayname) == 0) player->displayname = NULL;
  28.         spec[iindex('@', spec)] = '\0';
  29.         player->name = spec;
  30.     } else {
  31.         if (strcmp(spec, "mplayer") == 0) {
  32.         player->aitypename = copy_string(spec);
  33.         } else {
  34.         player->displayname = copy_string(spec);
  35.         }
  36.     }
  37.     /* Separate user and configuration name if both given. */
  38.     if (iindex('/', player->name) >= 0) {
  39.         player->configname =
  40.           copy_string(player->name + iindex('/', spec) + 1);
  41.         (player->name)[iindex('/', spec)] = '\0';
  42.     }
  43.     }
  44.     canonicalize_player(player);
  45. }
  46.